home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh -e
-
- TO_DIVERT="depmod insmod update-modules modinfo"
- TO_DIVERT_NOMAN="kallsyms ksyms"
- TO_DIVERT_L="lsmod modprobe rmmod"
-
- divert_gen() {
- DEXT=${3:-modutils}
- dpkg-divert --add --rename --package module-init-tools \
- --divert $2/$1.$DEXT $2/$1 > /dev/null
- }
-
- divert_man() {
- DSECTION=${2:-8}
- for locale in '' fr/; do
- dpkg-divert --add --rename --package module-init-tools --divert \
- /usr/share/man/${locale}man$DSECTION/$1.modutils.$DSECTION.gz \
- /usr/share/man/${locale}man$DSECTION/$1.$DSECTION.gz > /dev/null
- done
- }
-
- undivert_man() {
- DSECTION=${2:-8}
- for locale in '' fr/; do
- dpkg-divert --remove --rename --package module-init-tools --divert \
- /usr/share/man/${locale}man$DSECTION/$1.modutils.$DSECTION.gz \
- /usr/share/man/${locale}man$DSECTION/$1.$DSECTION.gz > /dev/null
- done
- }
-
- create_compat_symlinks() {
- # The links must be created even if modutils has not been installed,
- # because it could be installed after m-i-t.
- # -f should not be needed, but some people break their own systems
- # and then complain about module-init-tools. See #225236 for an example.
- [ -L /bin/lsmod.modutils ] || \
- ln -sf /sbin/lsmod.modutils /bin/lsmod.modutils
- [ -L /sbin/ksyms ] || ln -sf insmod.modutils /sbin/ksyms
- [ -L /sbin/kallsyms ] || ln -sf insmod.modutils /sbin/kallsyms
- return 0
- }
-
- upgrade_quirks() {
- [ "$2" ] || return 0
-
- dpkg --compare-versions $2 lt 3.2-pre9-4 || return 0
- rm -f /usr/share/man/man8/kallsyms.8.gz /usr/share/man/man8/ksyms.8.gz
- for cmd in kallsyms ksyms; do
- undivert_man $cmd
- done
-
- dpkg --compare-versions $2 lt 3.1-pre2-1 || return 0
- # just delete /etc/modprobe.conf if it's the one installed by old packages
- CONF_MD5='bf228fe320e2932bc34ba424d3ed2a5e /etc/modprobe.conf'
- if [ -f /etc/modprobe.conf ] \
- && echo "$CONF_MD5" | md5sum -c 2> /dev/null; then
- rm /etc/modprobe.conf
- fi
-
- # or if it is empty
- if [ -s /etc/modprobe.conf ]; then
- rm /etc/modprobe.conf
- fi
-
- if [ -f /etc/modprobe.conf ]; then
- [ -d /etc/modprobe.d/ ] || mkdir /etc/modprobe.d/
- grep -Ev '^include +/lib/modules/modprobe.conf *$' /etc/modprobe.conf \
- > /etc/modprobe.d/old_etc_modprobe.conf || true
- rm /etc/modprobe.conf
- fi
-
- rm -f /lib/modules/modprobe.conf*
- return 0
- }
-
- case "$1" in
- install|upgrade)
-
- for cmd in $TO_DIVERT; do
- divert_gen $cmd /sbin
- divert_man $cmd
- done
- for cmd in $TO_DIVERT_NOMAN; do
- divert_gen $cmd /sbin
- done
- for cmd in $TO_DIVERT_L; do
- if [ ! -L /sbin/$cmd.modutils ]; then
- ln -s insmod.modutils /sbin/$cmd.modutils
- fi
- divert_gen $cmd /sbin Lmodutils
- divert_man $cmd
- done
- divert_man modules 5
-
- create_compat_symlinks
- upgrade_quirks "$@"
- ;;
-
- abort-upgrade)
- ;;
-
- *)
- echo "$0 called with unknown argument '$1'" >&2
- exit 1
- ;;
- esac
-
-
-
- exit 0
-